package 力扣;

import java.util.HashMap;

/**
 给你一个未排序的整数数组，请你找出其中没有出现的最小的正整数。

  

 示例 1:

 输入: [1,2,0]
 输出: 3
 示例 2:

 输入: [3,4,-1,1]
 输出: 2
 示例 3:

 输入: [7,8,9,11,12]
 输出: 1
 */

public class _41缺失的第一个正数 {


    public int firstMissingPositive(int[] nums) {
        // 哈希
        HashMap<Integer, Integer> map = new HashMap<>();
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < nums.length; i++) { // 获取数组最大值 并将出现的值存入到map中
            max = Math.max(nums[i],max);
            map.put(nums[i],1);
        }
        for (int i = 1; i < max; i++) {
            Integer orDefault = map.getOrDefault(i, 0);
            if( orDefault == 0 ){
                return i;
            }
        }
        return max+1;
    }
}
